package org.skipper.common.utils;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;

/**
 * Created with IntelliJ IDEA.
 * Description: TODO
 *
 * @author shoujian
 * Date: 2025-02-19
 * Time: 15:19
 */
public class DateUtil {

    /**
     * 将本地日期时间转换为转换为时间戳
     *
     * @param localDateTime 本地日期时间
     * @return {@link Long }
     */
    public static Long convertLocalDateTimeToMilli(LocalDateTime localDateTime) {
        // 指定东八区（Asia/Shanghai）
        ZoneId zoneId = ZoneId.of("Asia/Shanghai");

        // 转换为 ZonedDateTime
        ZonedDateTime zonedDateTime = localDateTime.atZone(zoneId);

        // 获取时间戳
        return zonedDateTime.toInstant().toEpochMilli();
    }

    /**
     * 将milli转换为本地日期时间
     *
     * @param milli milli
     * @return {@link LocalDateTime }
     */
    public static LocalDateTime convertMilliToLocalDateTime(Long milli) {
        // 创建一个ZoneId对象，指定时区为东八区
        ZoneId zoneId = ZoneId.of("Asia/Shanghai");

        // 将毫秒数转换为Instant对象
        ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(java.time.Instant.ofEpochMilli(milli), zoneId);

        // 获取LocalDateTime对象
        return zonedDateTime.toLocalDateTime();
    }


}
